#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "ui_mainwindow.h"
#include "Abstractcontroller.h"
#include "Observer_I.h"

typedef QSharedPointer<AbstractController<double> > AbstractControllerPtr;

class MainWindow : public QMainWindow, private Ui::MainWindow, public mvc::Observer_I<double>
    {
        Q_OBJECT
    private:
        AbstractControllerPtr m_ptrController;
    public:
        MainWindow(AbstractControllerPtr&, QWidget *parent = 0);
        virtual ~MainWindow();

        void update(double before, double after);
    private slots:
        void on_m_btn_clicked();
    };

#endif // MAINWINDOW_H
